package com.itlong.cloud.app.service;

import com.itlong.cloud.POJO.DTO.app.AppAuthPersonGetRoomInfoDTO;
import com.itlong.cloud.POJO.DTO.app.AppGetAuthPersonPageDTO;
import com.itlong.cloud.POJO.DTO.app.AppMineAuthPersonExtendDTO;
import com.itlong.cloud.POJO.PO.AppTempSaveMessagePO;
import com.itlong.cloud.POJO.PO.AppUserInfoPO;
import com.itlong.cloud.POJO.PO.CloudIntercomAccountInfoPO;
import com.itlong.cloud.POJO.VO.app.*;
import com.itlong.cloud.utils.page.Page;

import java.text.ParseException;
import java.util.List;
import java.util.Map;


/**
 * <desc>
 *     新版APP灵云快智云服务层接口
 * </desc>
 *
 * @createDate 2018/08/23
 */
public interface IAppLykzCloudIntercomAccountService {

    /**
     * <desc>
     *      创建灵云快智云对讲用户账号
     * </desc>
     *
     * @param userId 用户id
     * @param phoneNum 手机号
     * @param lykzAppId 灵云快智为接入云对讲SDK分配的应用ID
     * @return
     * @author Juguang.S
     * @createDate 2018/08/23
     */
    CloudIntercomAccountInfoPO createLykzCloudIntercomAccount(String userId, String phoneNum,String lykzAppId,String lykzUserId) throws Exception;

    /**
     * <desc>
     *      根据userId查询是否已创建灵云快智的账号
     * </desc>
     *
     * @param userId 用户id
     * @return
     * @author Juguang.S
     * @createDate 2018/08/24
     */
    Integer getUserInfoByUserId(String userId) throws Exception;

    /**
     * <desc>
     *      根据手机号技术要求 灵云快智云对讲用户账号
     * </desc>
     *
     * @param phoneNum 手机号
     * @param lykzAppId 灵云快智为接入云对讲SDK分配的应用ID
     * @return
     * @author Juguang.S
     * @createDate 2018/08/23
     */
    Map<String,String> getLykzCloudIntercomAccountByMoblie(String phoneNum,String lykzAppId) throws Exception;

    /**
     * <desc>
     *      更新SIP账号
     * <desc/>
     * @author Juguang.S
     * @createDate 2018-08-24
     */
    void updateUserSipAccount(String newSipAccount,String userId,String sipPsd)  throws Exception;

    /**
     * <desc>
     *      获取所有未禁用的项目编号
     * <desc/>
     * @author Juguang.S
     * @createDate 2018-09-04
     */
    List<String> getProjectid()  throws Exception;

    /**
     * <desc>
     *      因集成灵云快智测试需要，根据userId释放灵云快智账号，前端移动端无需调此接口
     * <desc/>
     *
     * @return
     * @author Juguang.S
     * @createDate 2018-09-11
     */
    void dropSipAccount() throws Exception;

    /**
     * <desc>
     *      根据灵云userid查询cloud_intercom_account_info表中是否已有该用户灵云信息数据
     * <desc/>
     *
     * @return
     * @author Juguang.S
     * @createDate 2018-11-22
     */
    Integer getExistLykzInfo(String lykzUserID);

}
